/**
 * 页面加载完成后，初始化列表datagrid
 * datagrid加载成功后，统计汇总信息，行添加背景色，添加各种事件等
 * 
 * @author hdl
 * @createDate hdl
 * @update 
 * @updateDate 
 */
$(document).ready(function () {
	//1.初始化表单域页面加载默认值
	initFormSearchParams();
	var options ={
				url : BASE_PATH+'/wsAuthorController/searchList',
				rowStyler:function(index,row){
						var style = "";
						//格式化datagrid行背景色（审核蓝色背景），行作废添加下划线。产品默认规则
						//根据业务需求替换指定列的码值：row.verifyStatus--》表示datagrid某行指列的值，和产品需求默认的值进行比较
						// verifyStatus 是在js定义的常量,对应已审核码值
						/**
						if(!isNull(row.verifyStatus) && row.verifyStatus==verifyStatus){
						    //默认审核状态下蓝色背景
							style += 'background-color:#A9CAF5;';
						}
						if(!isNull(row.cancelStatus) && row.cancelStatus==cancelStatus){
						    //默认作废状态下，添加横划线
							style += 'text-decoration: line-through;';
						}*/
						return style;
				},
				onBeforeLoad:function(){
							//初始化列表
							initDatagrid(); 
					},
				onLoadSuccess:function(data){
				            //汇总查询，根据业务决定是否注释该行代码
				            //loadSummary();
							
					}
				}
	//2.初始化查询条件并且开始加载datagrid数据
	initSearchMenuAndLoadData(options);
	//3.初始化隐藏和显示
	$("#datagrid_table").datagridRowSOH({
		primaryField:'authorId',
		afterElement:'SOH_HIDDEN_INPUT'
	})
	//4.导出
	$("#exportBtn").oasis_datagrid_exporter({
		table:'datagrid_table',//表格ID
		exportCode:'export.xml中配置！！eg:wmLogisticsBill_export',
		defaultFileName:"改成默认导出文件名",
		tablePrimaryField:'authorId'//列表数据主键字段
	});
});
/**
 * 查询表单初始化默认值
 * 要求：所有查询表单的初始化值都在该方法具体实现
 * 按实际业务进行扩展
 * @author hdl
 * @createDate hdl
 * @update 
 * @updateDate 
 */
function initFormSearchParams(){
	//例如设置下拉框的默认值
	//$("#cancelStatus").combobox('setValue','ftl文件中定义js常量');
}
/**
 * 初始化datagrid的列样式，对齐，码值格式化
 * 要求：datagrid的初始化都在该方法中填充逻辑，并且要求是公共方法
 * 按实际业务进行修改，公共方法没有提供的反馈
 * @author hdl
 * @createDate hdl
 * @update 
 * @updateDate 
 */
function initDatagrid(){
	var moneyFields = ['totalAmount','realAmount'];
	var lookupCodeFields=[];
	//格式化码值
    oasis_style.setFormatter('datagrid_table',lookupCodeFields,formatterLookupCode);
    //格式化超链接
    oasis_style.setFormatter('datagrid_table', ['code'], formatterToView);
    //金额格式化......
    oasis_style.setFormatter('datagrid_table', moneyFields, oasis_style.moneyLabel);
}
/**
 * 格式化code，添加超链接调整到详情页
 * 按实际业务进行修改(格式datagrid跳转到详情页，默认添加到CODE字段上)
 * @author hdl
 * @createDate hdl
 * @update 
 * @updateDate 
 */
function formatterToView(value,row,index){
	if(isNull(value)){
		return "";
	}
	var authorId = row.authorId;
	return "<a href='#' style='text-decoration:underline' onclick=toView('"+authorId+"');>"+row.code+"</a>";
}
/**
 * 打开详情页
 * 第二个参数是打开tab页名称
 * @author hdl
 * @createDate hdl
 * @update 
 * @updateDate 
 */
function toView(authorId){
	var url = BASE_PATH + '/wsAuthorController/toView/'+authorId;
	MainTab.createTab(authorId, '***详情', url);
}
/**
 * 打开新增页面
 * 第二个参数是打开tab页名称
 * @author hdl
 * @createDate hdl
 * @update 
 * @updateDate 
 */
var tabAddNub=0;
function toAdd(){
	var index = tabAddNub++;
	MainTab.createTab('WsAuthor_add_'+index,'新增****',BASE_PATH+'/wsAuthorController/toSave');
}
/**
 * 打开更新页面
 * 如果传递参数指定更新哪个就直接调整，否则就获取当前datagrid的进行更新
 * @author hdl
 * @createDate hdl
 * @update 
 * @updateDate 
 */
function toUpdate(authorId){
	if(authorId){
		var url=BASE_PATH+'/wsAuthorController/toUpdate/'+authorId;
		MainTab.createTab('update_'+authorId,'修改******',url);
	}else{
		var rows = $('#datagrid_table').datagrid('getSelections');
		if(rows.length==1){
			var row=rows[0];
			authorId=row.authorId;
			var url=BASE_PATH+'/wsAuthorController/toUpdate/'+authorId;
			MainTab.createTab('update_'+authorId,'修改******',url);
		}else{
			$.messager.alert("系统提示","请选择一行数据！","error");
		}
	}
}
/**
 * datagrid页面底部汇总
 * @author hdl
 * @createDate hdl
 * @update 
 * @updateDate 
 */
function loadSummary(){
	if($("#datagrid_table").datagrid("getRows").length>0){
	    var url=BASE_PATH+'/wsAuthorController/summaryList';
		var queryParams = $("#datagrid_table").datagrid('options').queryParams;
		$.ajax({
			type:"post",
			dataType:"JSON",
			url:url,
			data:queryParams,
			success:function(data){
				$("#datagrid_table").datagrid("reloadFooter",data);
			}
		});
	}else{
	    //如果datagrid不存在数据，底部汇总数据清零，参考注释部分代码
		var defaultFotter =[];// [{"totalQuantity":0,"totalKinds":0,"totalAmount":0,"realAmount":0}];
		$("#"+tableId).datagrid("reloadFooter",defaultFotter);
	}
}
// **********************************************样例js*********************************************
// 不需要样例代码就给删除！！
// 打印共对应js代码 逻辑根据自己的实际情况在调整
//  步骤：1.根据当前单据主键，去后台查询打印界面需要的信息，然后返回一段html(样式以及内容组织完成)
//                      2. 把返回的内容调用打印方法进行打印，
//                      3.打印成功后，回调增加打印次数，并刷新当前页面
/**
 * eg:其它出入库单打印(根据Id)
 * @param stockOutId 单据主键
 * LODOP.SET_PRINT_PAGESIZE(3,1385,45,"");//这里3表示纵向打印且纸高“按内容的高度”；1385表示纸宽138.5mm；45表示页底空白4.5mm
 * @author hdl
 * @createDate hdl
 * @update 
 * @updateDate
 */
function printOtherStockOrder(otherStockId,code){	
	var dateNow = getCurrentTime();	
	$.ajax({
		   type : "post",
		   dataType : "html",
		   async: false,
		   url : BASE_PATH + "/wmOtherStockController/doOtherStockOutPrint",
		   data : {
			   otherStockId:otherStockId
		   },
		   success : function(msg) {
				LODOP=getLodop(); 				
				LODOP.PRINT_INIT("其它出库单打印");
				//LODOP.SET_PRINT_PAGESIZE(1, 0, 0, "A4");
				LODOP.ADD_PRINT_TEXT(5,5,200,0,code);
				LODOP.SET_PRINT_STYLEA(1,"FontSize",11);
				LODOP.SET_PRINT_STYLEA(1,"Bold",1);
				LODOP.SET_PRINT_STYLEA(1,"ItemType",1);
				LODOP.ADD_PRINT_TEXT(5,540,250,0,dateNow);
				LODOP.SET_PRINT_STYLEA(2,"FontSize",13);
				LODOP.SET_PRINT_STYLEA(2,"ItemType",1);
				
				LODOP.ADD_PRINT_HTM(30,-12,"98%","94%", msg);
				LODOP.ADD_PRINT_TEXT(5, "45%", 100, 22, "第#页/共&页");
				LODOP.SET_PRINT_STYLEA(4, "ItemType", 2);
				LODOP.SET_PRINT_STYLEA(4, "HOrient", 1);
				LODOP.ADD_PRINT_BARCODE(40, 560, 180, 52, "128Auto", "" + code + "");
				LODOP.SET_PRINT_MODE("AUTO_CLOSE_PREWINDOW",1);
				LODOP.PREVIEW();
				LODOP.On_Return=function(TaskID,Value){
              			if('1'==Value){
        				$.ajax({
        					   type : "post",
        					   dataType : "text",
        					   async: false,
        					   url : BASE_PATH + "/wmOtherStockController/addPrintCount",
        					   data : {
        						   otherStockId: otherStockId
        					   },
        					   success: function(result){
	       						    console.info(result);
	    						    var result = eval('('+ result +')');     
	    							if(result.success){ 
	    								
    								   	location.href= BASE_PATH + '/wmOtherStockController/toView?otherStockId=' + otherStockId;
	    								
	    			    			}else{
	    			    				$.messager.alert("提示：", result.msg, "info");
	    			    			}
	    					   },
	    					   error: function(result) {
	    						   console.info(result);
	    						   $.messager.alert("提示：", result.msg, "info");
	    					   }
        				});        				
              			}
        		};
		}
	});
}